// 解题步骤:
// 1. 用一快一慢两个指针遍历链表, 如果指针能够重逢, 就返回true
// 2. 遍历结束后, 还没有重逢就返回 false

// 时间复杂度: O(n)
// 空间复杂度: O(1)

var hasCycle = function (head) {
  let p1 = head
  let p2 = head
  while (p1 && p2 && p2.next) {
    p1 = p1.next
    p2 = p2.next.next
    if (p1 === p2) {
      return true
    }
  }
  return false
}
